package com.yc.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;
import java.util.concurrent.CompletableFuture;

public interface OssFileService {

    /**
     * 上传文件
     * @param file 前端传入的文件
     * @return 采用异步任务返回的是未来的类型
     */
    CompletableFuture<String> uploadFile(MultipartFile file,String prefix);

    /**
     * 批量上传文件
     * @param files 接收文件数组
     * @return 返回文件路径集合
     */
    List<String> uploadFile(MultipartFile[] files);

    /**
     * 上传文件
     * @param prefix  前缀 文件保存的路径
     * @param filename 文件名
     * @param inputStream  文件流
     * @param useUuid  是否使用uuid
     * @return
     */
     String uploadFile(String prefix, String filename, InputStream inputStream, boolean useUuid);

    /**
     * 上传文件,指定路径
     * @param prefix
     * @param filename
     * @param inputStream
     * @return
     */
    String uploadFile(String prefix, String filename, InputStream inputStream);

    /**
     * 只上传文件,不指定路径,默认加载到文件名的类型的文件夹下
     * @param filename
     * @param inputStream
     * @return
     */
    String uploadFile(String filename, InputStream inputStream);


}